package com.ruitu.mall_98_1.mvp.contract;

import com.beanu.arad.base.BaseModel;
import com.beanu.arad.base.BasePresenter;
import com.beanu.arad.base.BaseView;
import com.ruitu.router_module.bean.api.BaseResult;
import com.ruitu.router_module.bean.product.ProDetail;
import com.ruitu.router_module.bean.product.SpecInfo;

import rx.Observable;

public interface ProductDetailContract {
    public interface View extends BaseView {
        public abstract void onReqComplete(boolean isSuc, int type, Object data);//type 1 详情请求成功 2 规格 3 收藏 4 取消收藏
    }

    public abstract class Presenter extends BasePresenter<View, Model> {
        public abstract void reqProDetail(String goodId, String accountId);//请求商品详情

        public abstract void reqProSpec(String goodId);//请求商品规格

        public abstract void addToCart(String goodsId, String accountId, int num, String skuId);//加入购物车

        public abstract void reqGetCoupon(String accountId, String couponId);//领取优惠券

        //type 1 商品 2 企业 infoId收藏的商品或企业的id
        public abstract void reqcollect(String accountId, String type, String infoId);//收藏

        // id 收藏记录的id
        public abstract void reqcollectCancel(String accountId, String type, String id);//取消收藏
    }

    public interface Model extends BaseModel {
        Observable<BaseResult<ProDetail>> reqProDetail(String goodId, String accountId);

        Observable<BaseResult<SpecInfo>> reqProSpec(String goodId);

        Observable<BaseResult> addToCart(String goodsId, String accountId, int num, String skuId);//加入购物车

        Observable<BaseResult> reqGetCoupon(String accountId, String couponId);//领取优惠券

        //type 1 商品 2 企业 infoId收藏的商品或企业的id
        Observable<BaseResult> reqcollect(String accountId, String type, String infoId);//收藏

        // id 收藏记录的id
        Observable<BaseResult> reqcollectCancel(String accountId, String type, String id);//取消收藏
    }
}